#ifndef TERRAIN_LOGIC_HPP_INCLUDED
#define TERRAIN_LOGIC_HPP_INCLUDED

#include <string>

#include <boost/shared_ptr.hpp>

#include "wml_node_fwd.hpp"

namespace game {

class base_terrain;
typedef boost::shared_ptr<const base_terrain> const_base_terrain_ptr;

class base_terrain {
public:
	static const_base_terrain_ptr get(const std::string& id);
	explicit base_terrain(wml::const_node_ptr node);
	const std::string& id() const { return id_; }
	int move_cost() const { return move_cost_; }
	int cover() const { return cover_; }
	int height() const { return height_; }
private:
	std::string id_;
	int move_cost_;
	int cover_;
	int height_;
};

}

#endif
